package com.xyrl.project.common.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyrl.common.base.exception.XyrlException;
import com.xyrl.project.common.domian.SelectOptionVo;
import com.xyrl.project.common.system.entity.Dictionary;
import com.xyrl.project.common.system.vo.DictionaryVo;

import java.util.List;
import java.util.Map;

/**
 * @author zhongp
 */
public interface DictionaryService extends IService<Dictionary> {
    /**
     * 添加数据字典
     *
     * @param vo 数据字典数据
     */
    void addDictionary(DictionaryVo vo) throws XyrlException;

    /**
     * 修改数据字典
     *
     * @param vo
     * @throws XyrlException
     */
    boolean modieyDictionary(DictionaryVo vo) throws XyrlException;

    /**
     * 取得字典列表
     *
     * @param id 字典列表
     * @return
     */
    List<DictionaryVo> findDictionaryTree(Long id);

    /**
     * 删除字典
     *
     * @param id     字典id
     * @param userId 用户id
     */
    void delDictionary(Long id, Long userId);

    /**
     * 批量删除数据字典
     *
     * @param ids    字典ids
     * @param userId 操作用户
     */
    void delDictionary(List<String> ids, Long userId);

    /**
     * 停用或启用字典
     *
     * @param id     字典id
     * @param status 状态(YES 启用，NO 禁用）
     * @param userId 用户id
     */
    void editDictionaryStatus(Long id, String status, Long userId);

    /**
     * 取得字黄数据
     *
     * @param keys 字典key值
     * @return
     */
    List<SelectOptionVo> findDictByKey(List<String> keys);

    /**
     * 取得字黄数据
     *
     * @param key
     * @return
     */
    List<SelectOptionVo> findDictByKey(String key);
    /**
     * 获取value值
     * @author 徐恩源
     * @date 2020-01-02 11:34:32
     * @param key
     */
    String findValueByKey(String key);
}
